//定义懒加载插件
import { useIntersectionObserver } from '@vueuse/core'

export const lazyLoad = {
  install(app) {
    // 懒加载逻辑指令
    // 定义全局指令 图片懒加载
    app.directive('img-lazy', {
      // 指令挂载到元素上时调用
      // el: 指令所绑定的元素，可以用来操作 DOM
      // binding: 一个对象，包含指令的很多信息
      beforeMount(el, binding) {
        // 使用vueuse中的useIntersectionObserver监听元素是否进入可视区域
        const { stop } = useIntersectionObserver(el, ([{ isIntersecting }]) => {
          if (isIntersecting) {
            //进入可视区域
            el.src = binding.value
            //解决内存浪费
            stop()
          }
        })
      }
    })
  }
}
